[Win32] 多线程和线程同步 | 您所在的位置:网站首页 › win32 线程同步 › [Win32] 多线程和线程同步 |
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/48208357 多线程:一个进程创建时,默认情况下系统会为它创建一个主线程,(如果使用Native API创建的线程就没有主线程,是空的,必须自己创建主线程),应用程序可以自己创建线程,还有以前写过的一篇“DLL注入技术”,就是远程在其他进程中创建线程,然后让远程线程load我们的dll。 系统是如何实现多线程的?其实,对于单CPU单核心的设备上,在一个确定的时刻,只能执行内存中的一个指令。所谓的“多任务抢占式操作系统”,其实是将CPU划分了“时间段”,并分配给每一个线程,系统的任务调度程序会根据时间段切换线程上下文和进程上下文(比如线程的寄存器和状态等等信息就存储在上下文中),这个时间段不能太短,否则一个线程还没干什么事呢就切换走了,浪费效率,更不能太长,否则用户就感觉程序不是同时运行的。 创建一个线程,标准的Win32 API是CreateThread。 CreateThread函数: HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_opt_ LPVOID lpParameter, _In_ DWORD dwCreationFlags, _Out_opt_ LPDWORD lpThreadId );第1个参数:线程内核对象 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |